import logging
from pathlib import Path
from tools.ERP上传 import 退货退款上传
from tools.page import page_get
from tools.获取日期 import get_date


def 获取售后退货退款(date_start, date_end):
    if Path(f'C:/售后退货退款/{date_start}/售后退货退款.xlsx').exists():
        logging.info(f'{date_start}文件已存在,跳过')
        return
    page = page_get()
    page.set.download_path('C:/filedownloads')
    page.set.download_file_name('售后退货退款.xlsx')
    page('#order_date_begin').input(date_start, clear=True)
    page('#order_date_end').input(date_end, clear=True)
    page('text=组合查询').click(by_js=True)
    while page.wait.eles_loaded('@@class=wait@@style=display: block;', timeout=3):
        page.wait(1)
    page.wait(3)
    page('text=导出excel').click(by_js=True)
    page.wait(3)
    while page('text=导出任务创建成功!任务完成会自动下载文件，如需查看进度或者多次下载，请前往右上角导出记录查看！').states.is_displayed:
        page('text=导出任务创建成功!任务完成会自动下载文件，如需查看进度或者多次下载，请前往右上角导出记录查看！').next().child(1).click(by_js=True)
    if page.s_eles('text=相同的条件正在导出中，请勿重复导出'):
        page('text=相同的条件正在导出中，请勿重复导出').next().child(1).click(by_js=True)
    page('.ant-badge').click()
    logging.info('进入下载订单页面')
    page.wait(3)
    trs = page.eles('._jt_row _jt_rh')
    for tr in trs:
        导出类型 = tr.child(6).text
        if 导出类型 == '售后单':
            logging.info('聚水潭导出进度开始加载')
            while True:
                if tr.child(7).text == '100%':
                    logging.info('聚水潭导出进度100%')
                    break
            tr('.btn downLoad').click()
            logging.info('等待订单文件下载')
            page.wait.download_begin(timeout=180)
            page.wait.downloads_done(timeout=180)
            logging.info('订单文件下载成功')
            page.wait(2)
            break
    for i in range(len(page.eles("下载完成"))):
        eles = page.eles("._jt_row _jt_rh")
        for ele in eles:
            if '下载完成' in ele.text:
                ele.ele(".btn del").click()
                page.wait(2)
                break
    page('.ant-modal-close-x').click()
    Path(f'C:/售后退货退款/{date_start}').mkdir(parents=True, exist_ok=True)
    Path('C:/filedownloads/售后退货退款.xlsx').replace(Path(f'C:/售后退货退款/{date_start}/售后退货退款.xlsx'))
    logging.info(f'文件上传ERP')
    退货退款上传(f'C:/售后退货退款/{date_start}/售后退货退款.xlsx')
